﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestConsole.Practice3
{
    // 실습 목표
    // 관계 연산식 사용하기
    // if 문 사용하기
    // 기본적인 입력문 사용하기
    // 간단한 조건문 이용 프로그램 작성하기

    // 문제 
    // 한 대학생이 이번 학기에 프로그래밍 과목을 수강하고 있다. 이 과목의 성적 평가 요소는 출석,
    // 과제, 수시 시험, 중간시험과 기말시험이다. 각 평가 요소의 반영률은 출석 10%, 과제 40%, 수시시험 10%,
    // 중간시험 20%이다. 이 과목의 학점은 다음 기준에 의해 부여 된다.
    // 
    //                     ====================================
    //                          총 점       │      학 점
    //                     ====================================
    //                        90 ~ 100      │       A
    //                     ------------------------------------
    //                        80 ~  89      │       B
    //                     ------------------------------------
    //                        70 ~  79      │       C
    //                     ------------------------------------
    //                        60 ~  69      │       D
    //                     ------------------------------------
    //                         0 ~  59      │       F
    //                     ====================================
    //     
    // 이 학생의 각 평가 요소의 점수를 입력 받아 총점을 계산하고 학점을 부여하는 프로그램을 작성하라.
    public class Practice3_2
    {
        // 모범 출력
        // 출석 점수를 입력하세요:        94
        // 과제 점수를 입력하세요:        88
        // 수시시험 점수를 입력하세요:    82
        // 중간시험 점수를 입력하세요:    75
        // 기말시험 점수를 입력하세요:    97
        // 총점:    87.20000000000002
        // 학점:    B
        public static void ComputeGrade()
        {
            // 한 과목의 평가 요소들의 점수들을 저장하는 변수들을 선언한다.
            int attendscore;
            int assignmentscore;
            int quizscore;
            int midtermexamscore;
            int finalexamscore;

            // 총점을 저장하는 변수를 선언한다.
               // 여기에 코드를 작성
            double total;

            // 학점을 저장하는 변수를 선언한다.
            // 여기에 코드를 작성
            char grade;

            grade = '0';

            // 사용자로부터 각 평가 요소의 점수를 한 번에 하나씩 입력하라고 요청한다.
            // 그리고 입력된 점수를 읽는다.
            Console.Write("출석 점수를 입력하세요:\t\t");
            int.TryParse(Console.ReadLine(), out attendscore);
            // 여기에 코드를 작성
            Console.Write("과제 점수를 입력하세요:\t\t");
            int.TryParse(Console.ReadLine(), out assignmentscore);
            Console.Write("수시시험 점수를 입력하세요:\t");
            int.TryParse(Console.ReadLine(), out quizscore);
            Console.Write("중간시험 점수를 입력하세요:\t");
            int.TryParse(Console.ReadLine(), out midtermexamscore);
            Console.Write("기말시험 점수를 입력하세요:\t");
            int.TryParse(Console.ReadLine(), out finalexamscore);

            // 총점을 계산한다.
            // 여기에 코드를 작성
            total = ((attendscore * 10) + (assignmentscore * 40) + (quizscore * 10) + (midtermexamscore * 20) + (finalexamscore * 20)) / 100d;

            // 학점을 계산한다.
            // 여기에 코드를 작성
            if (total >= 90 && total <= 100)
                grade = 'A';
            else if (total >= 80 && total < 90)
                grade = 'B';
            else if (total >= 70 && total < 80)
                grade = 'C';
            else if (total >= 60 && total < 70)
                grade = 'D';
            else if (total < 60)
                grade = 'F';

            // 총점과 학점을 출력한다.
               // 여기에 코드를 작성
            Console.WriteLine("총점:\t\t{0}", total);
            Console.WriteLine("학점:\t\t{0}", grade);
        }
        // 힌트
        // 1. 사용자로부터 각 평가 요소의 점수를 입력하라는 메시지를 화면에 출력한다.
        // 2. 사용자가 입력한 점수를 int.TryParse메소드를 이용하여 대응하는 변수에 저장한다.
        // 3. 문제에 주어진 정보를 이용하여 총점을 계산하라.
        // 4. 총점에 대응하는 학점을 주기 위해 if문을 사용하라.
        // 5. 결과 값들을 출력하라.
        // 6. 프로그램의 결과가 맞는지를 확인하기 위해 여러 개의 다른 입력 값들을 사용하여 프로그램을 
        //    철저하게 시험하라.
    }
}          
